Over the years, the Internet and the World Wide Web (WWW) have grown and their utilization has increased from a simple method of communication into a medium for storage, interactive accessing of information, and enablement of remote device control. The Internet and the WWW have captured the public's imagination as the so called “Information Super Highway”. Accessing information through the web has been used by the metaphorical term “surfing the web”.
However, the Internet is not a single network, nor does it have any single owner or controller. Rather, the Internet is a network of networks, both public and private, connected to each other. The resulting network utilizes security measures, such as fire walls, to prevent the spread of computer viruses, as well as the unauthorized access to account files and data. Given the proliferation of Internet viruses and web hackers, the utilization of security restrictions, such as fire walls, and other security measures in public and private networks remains in place and in the foreseeable future will necessarily continue to grow.
The WWW facilitates users interactive access to information, storage and remote control of devices by letting users or clients jump from one server or network to another, simply by selection of a word, picture, or program. In fact, when exploring the web today, a user navigates the web through the utilization of a “web browser”. There are many number of browsers presently in existence. Common examples of browsers include, Netscape's “Navigator”, Microsoft's “Explorer”, Mosiac's browser, and IBM's “Web Explorer”. A web browser allows a client access to servers and networks located throughout the world for storage, information, and remote device control. The information is provided to a client by the remote server by sending files or data packets to the requesting clients computer. However, with the use of fire walls and other security measures, the files or data packets sent by a remote server to a client's computer are blocked and not allowed access.
In recent years, there has also been a steady increase in the different multi-functional, portable electronic devices such as personal digital assistance (PDA), Wireless Application Protocols (WPA), enabled mobile telephones, I-mode mobile telephones, multi-functional portable radio and CD (compact disk) players such as Walkman®, mini disk (MD) players, MP3 music players, and e-markers. With each new generation of these type of portable electronic devices, more features and functions are added, such as wireless data exchange with other portable devices, and host devices such as desk top computers and server terminals. Again, utilization of the Internet as the medium of storage, interactive access of information and remote control of the devices has grown.
Computers and all other devices connected by the Internet are connected by the TCP/IP protocol. In the 1980's, the Advanced Research Project Agency (ARPA), of the U.S. Government, funded the University of California at Berkeley, to provide a Unix implementation of the TCP/IP protocol. What was developed was termed the Socket Interface (although it is sometimes referred to as the Berkeley Socket Interface or just Berkeley Sockets). Today, the Socket Interface is the most wisely used method for accessing an internet network via the TCP/IP.
A socket represents a connection point into a TCP/IP network, much like electrical sockets provide a connection point for appliances in a home. When two computers want to converse, each utilizes a socket. One computer is therefore termed a server, it opens a socket and listens for connections. While the other computer is termed a client, since it calls the server socket to initiate the connection. To establish a connection, a server's destination address and port number are all that is required. Each and every computer in the Internet has a unique TCP/IP address. A port represents an individual connections within that unique TCP/IP address. The analogy may be made to corporate mail, with each person within a company sharing the same address, but with correspondence being routed within the company by the persons unique identifier, their name. Each port within a computer shares the same address, but data is routed within each computer by the port number. Therefore, when a socket is created, it must be associated with a specific port. This process is known as “binding to a port”.
Sockets have two major modes of operation, connection and connectionless orientation. Connection orientated sockets operate like a telephone, they must establish a connection and then hang up. Information that flows between these two events arrives in the same order as it was sent. However, connectionless orientated sockets operate like the United States mail and delivery is not guaranteed. In fact, with connectionless orientated sockets, multiple pieces of mail may arrive in an order different from which they were sent.
When interacting with file and data servers, data must arrive correctly and in sequence. If some data is lost, then the server usefulness is invalidated. For example, if data were to get lost, then the server would not want the network to retry, because by the time the re-sent data arrived, it would be too old to have any accuracy. Therefore insuring data sequence and correctness requires extra processing and memory usage, and thus requires the utilization of connection orientated sockets.
Connection orientated operation uses the transport control protocol (TCP). A socket in this mode must connect to the destination before sending data. Once connected, the sockets are accessed using a streams interface, i.e., open-read-write-close. Everything sent by one socket is received by the other of the connections in exactly the same order it was sent. Also, everything sent by one socket must be received by that socket. Connection orientated operation is less efficient than connectionless operation, but data transmission is guaranteed.
Sockets are characterized by definition of protocol and a port ID number. The port ID number is required to complete a transition and allow an individual application to receive a call. Port ID numbers were not originally mandated by any governing body, but were assigned by convention. Currently, port numbers are assigned by the Internet Assigned Numbers Authority (LANA), and some well known port numbers follow: Echo=Port 7; Dayton=Port 13; FTP=Port 21; Telnet=Port 23; SMTP=Port 25; Finger=Port 79; HTTP=Port 80; and TOP3=Port 110. Therefore, data and file transmission over the Internet and through TCP/IP require transmissions over Port 80. Servers do not create connections, instead, servers passively listen for a client connection request and then provide their services.
When utilizing the Internet for storage, interactive access and remote device control, the utilization of applications on a computer connected to a server require the consideration of security exceptions and fire walls. One method of accomplishing storage, interactive access, and remote device control over the Internet and through web browsers is the utilization of an applet. Again, browsers use very stringent security measures where sockets are concerned and an applet can only open a socket back to the host name/server from which it was loaded. If an applet tries any other connection, a security exception is thrown and a file wall is set up, which blocks the transfers of files and data.
However, the use of an applet to provide file/data storage, information access, and remote device control is also limited by the applet's inability to access the client computer's file system and data, and operate in the transfer, exchange or the like. With the rise of the Internet as the medium for file/data storage, information access, and remote device control, it would be desirable to provide true bidirectional communication via a web browser which has access to a client computer file system and data and would not be blocked by the necessary security restrictions and fire walls which are presently in place.